<template>
  <page-container :title="route.meta.title">
    <template #content></template>
    <template #extra>
      <div class="filter_class">
        <a-input v-model:value="value" placeholder="Basic usage" style="width: 200px" />
        <a-input v-model:value="value" placeholder="Basic usage" style="width: 200px" />
        <a-input v-model:value="value" placeholder="Basic usage" style="width: 200px" />
        <a-input v-model:value="value" placeholder="Basic usage" style="width: 200px" />
        <a-button key="2" @click="GetUserList">查询</a-button>
        <a-button key="1" type="primary">重置</a-button>
      </div>
    </template>
    <!-- 主内容区 -->
    <div>
      <a-table :columns="columns" :data-source="data" :pagination="false">
        <template #name="{ text }">
          <a>{{ text }}</a>
        </template>
        <template #customTitle>
          <span>
            <SmileOutlined />
            Name
          </span>
        </template>
        <template #tags="{ text: tags }">
          <span>
            <a-tag
              v-for="tag in tags"
              :key="tag"
              :color="tag === 'loser' ? 'volcano' : tag.length > 5 ? 'geekblue' : 'green'"
            >
              {{ tag.toUpperCase() }}
            </a-tag>
          </span>
        </template>
        <hr />
        <template #action="{ record }">
          <span>
            <a>Invite 一 {{ record.name }}</a>
            <a-divider type="vertical" />
            <a>Delete</a>
            <a-divider type="vertical" />
            <a class="ant-dropdown-link">
              More actions
              <DownOutlined />
            </a>
          </span>
        </template>
      </a-table>
    </div>
  </page-container>
</template>

<script setup lang="ts">
import { useRoute } from 'vue-router';
import { SmileOutlined, DownOutlined } from '@ant-design/icons-vue';
import { GetUserListAsync } from '../../apis/UserApi';

const route = useRoute();

const columns = [
  {
    dataIndex: 'name',
    key: 'name',
    slots: { title: 'customTitle', customRender: 'name' },
  },
  {
    title: 'Age',
    dataIndex: 'age',
    key: 'age',
  },
  {
    title: 'Address',
    dataIndex: 'address',
    key: 'address',
  },
  {
    title: 'Tags',
    key: 'tags',
    dataIndex: 'tags',
    slots: { customRender: 'tags' },
  },
  {
    title: 'Action',
    key: 'action',
    slots: { customRender: 'action' },
  },
];

const GetUserList = () => {
  GetUserListAsync({}).then();
};

const data = [
  {
    key: '1',
    name: 'John Brown',
    age: 32,
    address: 'New York No. 1 Lake Park',
    tags: ['nice', 'developer'],
  },
  {
    key: '2',
    name: 'Jim Green',
    age: 42,
    address: 'London No. 1 Lake Park',
    tags: ['loser'],
  },
  {
    key: '3',
    name: 'Joe Black',
    age: 32,
    address: 'Sidney No. 1 Lake Park',
    tags: ['cool', 'teacher'],
  },
];

const value = ref<string>('');
</script>
<style lang="less" scoped>
.ant-page-header-heading-extra {
  width: 80%;
}
.filter_class {
  input {
    margin-right: 10px;
  }
  button {
    margin-right: 10px;
  }
}
</style>
